package com.chat.entity;

import java.io.Serializable;
import java.util.List;

/**
 * 聊天室实体类
 * 实现序列化接口
 * @author LinYang
 * @date 2022-11-08
 */
public class Room extends Entity implements Serializable {
    /*房间号*/
    private int roomId;
    /*用户列表*/
    private List<User> members;
//    /*用户连接池
//     * String account
//     * */
//    private Map<String, ChannelHandlerContext> userChannels;
    /*管理员id*/
    private int adminId;
    /*聊天室名称*/
    private String name;

    /**
     * @return 返回聊天室id
     */
    public int getRoomId() {
        return roomId;
    }

    public void updateMessage(Message message){
//        //更新
//        for(ChannelHandlerContext channelHandlerContext:userChannels.values()){
//            channelHandlerContext.writeAndFlush(DataPackage.successResponse(List.of(message),ServerAction.RESPONSE_UPDATE_ROOM_MESSAGE));
//        }
    }

    /**
     * 设置聊天室id
     * @param roomId 聊天室id
     */
    public void setRoomId(int roomId) {
        this.roomId = roomId;
    }

    /**
     *
     * @return 返回聊天室成员列表
     */
    public List<User> getMembers() {
        return members;
    }

    /**
     * 设置聊天室成员列表
     * @param members 聊天室成员列表
     */
    public void setMembers(List<User> members) {
        this.members = members;
    }

    /**
     *
     * @return 返回管理员id
     */
    public int getAdminId() {
        return adminId;
    }

    /**
     * 设置管理员id
     * @param adminId 管理员id
     */
    public void setAdminId(int adminId) {
        this.adminId = adminId;
    }

    /**
     *
     * @return 返回聊天室名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置聊天室名称
     * @param name 名称
     */
    public void setName(String name) {
        this.name = name;
    }

    public String toString() {
        return "Room(roomId=" + this.getRoomId() + ", members=" + this.getMembers() + ", adminId=" + this.getAdminId() + ", name=" + this.getName() + ")";
    }

//    public Map<String, ChannelHandlerContext> getUserChannels() {
//        return userChannels;
//    }
}
